package JsoupXmlDtd;

import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;

import java.io.File;
import java.io.IOException;
import java.lang.String;
/*

   Document对象及其功能
      *getElementById(String id) :根据id属性值获取唯一的element对象
      *getElementsByTag(String tagName):根据标签名称获取元素对象集合
      *getElementsByAttribute(String key):根据属性名称获取元素对象集合
      *getElementsByAttributeValue(String key,String value) : 根据对应的属性名和属性值获取元素对象集合

    Element对象功能: 能用Document对象功能
        1:获取属性值:
            *String attr(String key):根据属性名称获取属性值
        2:获取文本内容
           *String text():获取文本纯内容(获取的内容不包括标签)
           *String html:获取标签体的所有内容(包括字标签的标签和字符串内容)
*/
public class demo03_Jsoup {
    public static void main(String[] args) throws IOException {
        //2获取Document对象
        //2.1获取03_student.xml的路径path
        String aa = demo03_Jsoup.class.getClassLoader().getResource("03_student.xml").getPath();
        //2.2解析xml文档,加载文档进内存,获取dom树--->Document
        Document bb = Jsoup.parse(new File(aa), "utf-8");

     //获取元素对象
        //获取所有student对象
        Elements cc = bb.getElementsByTag("student");
        System.out.println(cc);
        System.out.println("====================");

     //获取属性名为id的元素对象们
        Elements dd = bb.getElementsByAttribute("id");
        System.out.println(dd);
        System.out.println("====================");

        //获取number属性值为a001的元素对象
        Elements ee = bb.getElementsByAttributeValue("number", "a001");
        System.out.println(ee);
        System.out.println("====================");

        //获取student对象的属性值
        Element ff = bb.getElementsByTag("student").get(0);
        Elements mm = ff.getElementsByTag("name");
        String hh = ff.attr("number");
        System.out.println(hh);
        System.out.println("====================");

        //获取文本内容
        String nn = mm.text();
        String oo = mm.html();
        System.out.println(nn);
        System.out.println("====================");
        System.out.println(oo);
    }
}
